[코담]
웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트
미니프로젝트 7 | ✅저자: 이유정(박사)
프로젝트 코드명: SimpleSurveyBot
프로젝트 유형: 콘솔 기반 설문 응답 수집기
🖥️ 프로젝트 개요
사용자에게 이름, 나이, 취미 등 몇 가지 질문을 하고 응답을 정리하여 출력하는 간단한 설문 봇을 만듭니다.
선택적으로 입력 가능한 항목은 기본값을 설정하고, 질문의 순서는 키워드 인자를 통해 자유롭게 조정합니다.
◽ 이 프로젝트를 통해 자연스럽게 적용되는 내용
- 함수 정의 및 호출
- 매개변수 / 인자 구분
- 기본값 매개변수
- 키워드 인자
- 가변 키워드 인자 활용
📄 기능 요구사항 (Functional Requirements)
- FR-01
ask_user()
함수: 이름, 나이, 취미를 입력받음 - FR-02
summarize_response()
함수: 응답을 키:값으로 받아 정리하여 출력 - FR-03 이름은 필수, 나이/취미는 선택이며 기본값 설정
- FR-04 입력값 없이 호출 시에도 기본 정보 제공
📄 비기능 요구사항 (Non-Functional Requirements)
- 입력값이 없을 경우 기본 응답으로 대체
- 콘솔 기반 출력
- 함수 간 역할 분리
✅ 출력 포맷 구성:
[설문 결과 요약]
name: 민수
age: 20
hobby: 음악 감상
[설문 결과 요약]
name: 영희
age: 20
hobby: 독서
✅ 정답 코드:
def ask_user(name, age=20, hobby="독서"):
info = summarize_response(name=name, age=age, hobby=hobby)
print(info)
def summarize_response(**info):
result = "[설문 결과 요약]\n"
for key, value in info.items():
result += f"{key}: {value}\n"
return result
# 호출 예시
ask_user("민수", hobby="음악 감상")
ask_user("영희") # 기본값 적용
🔍 코드 해설:
ask_user()
는 위치 인자 + 기본값 매개변수로 입력 처리summarize_response()
는 가변 키워드 인자(**kwargs)
를 사용해 출력- 각 함수는 단일 책임 원칙을 적용하여 분리됨